When running GPGPU (General-Purpose Computation on Graphics Processing Unit) workloads and the hardware is required for other workloads, a mechanism may be used to pre-empt or interrupt the GPGPU workload. This generally requires the completion of all existing or executing threads in the hardware in response to an interruption. This mechanism works well for threads which are expected to complete in a short amount of time. However, when threads run indefinitely or for a long duration, the response time in context switch can be very long and sometimes even cause a page fault.